package model

import (
	"manager/model/entity"
)

// DocCreateRequest 创建现场数据
type DocCreateRequest struct {
	Title string `json:"title"`

	Url string `json:"url"`

	Content string `json:"content"`

	DocType int `json:"doc_type"`

	StoreType int `json:"store_type"`

	UpdatedAt int64 `json:"updated_at"`
}

// DocUpdateRequest 更新现场数据
type DocUpdateRequest struct {
	Id int64 `json:"id"`

	Title *string `json:"title"`

	Url *string `json:"url"`

	Content *string `json:"content"`

	DocType *int `json:"doc_type"`

	StoreType *int `json:"store_type"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt *int64 `json:"updated_at"`
}

// DocListRequest 列表现场数据
type DocListRequest struct {
	Index int `json:"index"`
	Size  int `json:"size"`

	Id int64 `json:"id"`

	Title *string `json:"title"`

	Url *string `json:"url"`

	Content *string `json:"content"`

	DocType *int `json:"doc_type"`

	StoreType *int `json:"store_type"`

	UpdatedAt *int64 `json:"updated_at"`
}

// DocListResponse 列表回包数据
type DocListResponse struct {
	Total int        `json:"total"`
	List  []*DocInfo `json:"list"`
}

// DocInfoRequest 列表现场数据
type DocInfoRequest struct {
	Id int64 `json:"id"`

	Title *string `json:"title"`

	Url *string `json:"url"`

	Content *string `json:"content"`

	DocType *int `json:"doc_type"`

	StoreType *int `json:"store_type"`

	UpdatedAt *int64 `json:"updated_at"`
}

// DocInfo 详细数据
type DocInfo struct {
	Id int64 `json:"id"`

	Title string `json:"title"`

	Url string `json:"url"`

	Content string `json:"content"`

	DocType int `json:"doc_type"`

	StoreType int `json:"store_type"`

	CreatedAt int64 `json:"created_at"`

	UpdatedAt int64 `json:"updated_at"`
}

// DocDeleteRequest 删除现场数据
type DocDeleteRequest struct {
	Id int64 `json:"id"`
}

// DocsEntityToDto entity数据转换
func DocsEntityToDto(docs []*entity.Doc) []*DocInfo {
	out := make([]*DocInfo, 0, len(docs))
	for _, c := range docs {
		out = append(out, DocEntityToDto(c))
	}
	return out
}

// DocEntityToDto entity数据转换
func DocEntityToDto(e *entity.Doc) *DocInfo {
	return &DocInfo{

		Id: e.Id,

		Title: e.Title,

		Url: e.Url,

		Content: e.Content,

		DocType: e.DocType,

		StoreType: e.StoreType,

		CreatedAt: e.CreatedAt,

		UpdatedAt: e.UpdatedAt,
	}
}
